﻿//-----------------------------------------------------------------------
// <copyright file="ILogProvider.cs" company="Anthony Steele">
// This source forms part of the DuplicateFinder utility
// Hosted at http://www.codeplex.com/DuplicateFinder
//
// logging code by John Miller
// This source is available under the terms of the Microsoft Public License (Ms-PL)
// See http://duplicatefinder.codeplex.com/license
// All other rights reserved.
// </copyright>
//-----------------------------------------------------------------------

namespace DupFinder.Logging
{
    using DuplicateFinderLib;

    /// <summary>
    /// Interface to an object that can log program output
    /// </summary>
    public interface ILogProvider
    {
        /// <summary>
        /// This writes the message to the log provider
        /// </summary>
        /// <param name="message">message to be logged</param>
        void LogMessage(string message);

        /// <summary>
        /// This writes the duplication information to the log provider
        /// </summary>
        /// <param name="e">Duplication information</param>
        void LogDuplication(DuplicateEventArgs e);

        /// <summary>
        /// This logs the number of files processed.
        /// </summary>
        /// <param name="fileCount">number of files processed.</param>
        void LogFileCount(int fileCount);

        /// <summary>
        /// This logs the number of duplicate items found.
        /// </summary>
        /// <param name="duplicateCount">the number of duplicate items found</param>
        void LogDuplicateCount(int duplicateCount);

        /// <summary>
        /// This finalizes any logging activity
        /// </summary>
        void Close();
    }
}
